package com.ydgg.ltar.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSON;
import com.ydgg.ltar.model.ArBuilding;
import com.ydgg.ltar.model.ArBuildingContent;
import com.ydgg.ltar.model.ContentLogo;
import com.ydgg.ltar.util.PageInfo;
import com.ydgg.ltar.util.Result;


/**
 * 识楼内容
 * 作者： 张叶
 * 创建时间：2018年12月6日  下午5:25:54
 */
@Controller
@RequestMapping("admin/arBuildingContent") 
public class ArBuildingContentController extends BaseController{
	

	/**
	 * 一级分类
	 * 作者： 张叶
	 * 创建时间：2019年1月14日  下午4:53:39
	 */
	@ResponseBody
	@RequestMapping("getAbc/{abId}")
	public List<ArBuildingContent> getAbc(@PathVariable("abId") Long abId){
		String where = " and status != 'deleted' and level = 1 and ar_building_id = " + abId;
		List<ArBuildingContent> list = arBuildingContentService.selectByWhere(where);
		return list;
	}
	

	/**
	 * 修改
	 * 1，先判断是否改变大楼
	 * 2，改变大楼之后，查看大楼的分类是否为3
	 * 作者： 张叶
	 * 创建时间：2019年1月11日  下午2:07:16
	 */
	@ResponseBody
	@RequestMapping("isOk")
	public boolean isOk(Long id,Long arBuildingId){
		ArBuildingContent abc = arBuildingContentService.selectByPrimaryKey(id);
		if(abc != null && !"".equals(abc)){//ID有效 
			if(!abc.getArBuildingId().equals(arBuildingId)){//改变大楼
				ArBuilding ab = arBuildingService.selectByPrimaryKey(arBuildingId);
				String type = ab.getType();
				if(!type.equals("3")){//限制个数
					List<ArBuildingContent> list = arBuildingContentService.selectByWhere(" and status != 'deleted' and ar_building_id = " + arBuildingId);
					if(list.size() < 4){
						return true;
					}else{
						return false;
					}
				}else{
					return true;
				}
			}else{
				return true;
			}
		}else{
			return false;
		}
	}
	

	
	/**
	 * 大楼分类最大限制
	 * 作者： 张叶
	 * 创建时间：2019年1月11日  上午11:20:17
	 */
	@ResponseBody
	@RequestMapping("isExists")
	public boolean isExists(Long arBuildingId){
		ArBuilding ab = arBuildingService.selectByPrimaryKey(arBuildingId);
		if(ab != null){
			String type = ab.getType();
			if(type.equals(3)){//不限个数
				return true;
			}else{//判断是否可以再添加
				List<ArBuildingContent> list = arBuildingContentService.selectByWhere(" and status != 'deleted' and ar_building_id = " + arBuildingId);
				if(list.size() < 4){
					return true;
				}else{
					return false;
				}
			}
		}else{
			return false;
		}
	}

	
	/**
	 * 上传富文本编辑器图片内容
	 * 作者： 张叶
	 * 创建时间：2018年12月20日  上午9:04:01
	 */
	@ResponseBody
	@RequestMapping(value = "/upload", method = RequestMethod.POST)
	public String updateFile(
			@RequestParam(value = "file", required = false) MultipartFile file) throws Exception {
		String imageUrl = "";
		if(file.getBytes().length > 0){
			imageUrl = qiniuService.upload("arBuildingImageUrl", file.getOriginalFilename(),file.getBytes());
		}
		return imageUrl;
	}


	/**
	 * 列表
	 * 作者： 张叶
	 * 创建时间：2018年11月29日  下午3:42:48
	 */
	@RequestMapping("list")
	public String list(Model model){
		List<ArBuilding> list = arBuildingService.selectByWhere(" and status != 'deleted'");
		model.addAttribute("abList",list);
		return "admin/arBuildingContent/list";
	}
 
	
	/**
	 * 分页显示 
	 * 作者： 张叶
	 * 创建时间：2018年11月29日  下午3:42:52
	 */
	@ResponseBody
	@RequestMapping("arBuildingContentJson")
	public JSON arBuildingContentJson(PageInfo pageInfo, Integer rows, Integer page,
			String sidx, String sord, Model model, String name,Long arBuildingId ) {
		// 分页信息
		if (pageInfo == null) {
			pageInfo = new PageInfo();
		}
		if (pageInfo.getPage() < 2
				|| pageInfo.getPage() >= pageInfo.getTotalPage()) {
			pageInfo.setCount(0);
		}
		if (rows != null) {// 每页显示条数
			pageInfo.setPageSize(rows);
		}
		if (page != null) {// 当前页
			pageInfo.setPage(page);
		}

		// 排序
		String order = " order by created_at desc";
		if (sidx != null && sidx != "") {// 排序字段
			order = " order by " + sidx + " ";
			if (sord != null && sord != "") {// 排序
				order += sord;
			}
		}
		String where = "1 = 1 and abc.status != 'deleted'";

		if(name != null && !"".equals(name)){
			where += " and abc.name like '%" + name + "%'";
		}
		
		if(arBuildingId != null && !"".equals(arBuildingId)){
			where += " and ar_building_id = " + arBuildingId;
		}
		
		List<Map<String, Object>> list = arBuildingContentService.selectByPage(pageInfo,where, order);
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("total", pageInfo.getTotalPage());
		data.put("list", list);
		return (JSON) JSON.toJSON(data);
	}


	
	/**
	 * 添加页面
	 * 作者： 张叶
	 * 创建时间：2018年11月28日  下午2:18:57
	 */
	@RequestMapping("/addPage")
	public String addPage(Model model){
		List<ArBuilding> list = arBuildingService.selectByWhere(" and status != 'deleted'");
		model.addAttribute("arBuildingList",list);
		List<ContentLogo> imageUrlList = contentLogoService.selectAll();
		model.addAttribute("imageUrlList",imageUrlList);
		return "admin/arBuildingContent/add";
	}

	
	/**
	 * 添加功能
	 * 判断abcId,是否有值，如果没有正常添加，如果有，需要添加实体的parentId,level等
	 * 作者： 张叶
	 * 创建时间：2018年5月11日  下午2:06:57
	 * @throws Exception 
	 */
	@ResponseBody
	@RequestMapping(value = "/add", method = RequestMethod.POST)
	public Result add(@RequestParam(value = "videos", required = false) MultipartFile videos,
			@RequestParam(value = "videoImages", required = false) MultipartFile videoImages,
			ArBuildingContent abc,Long abcId) {
		Result result = new Result();
		try {
			if(videos.getBytes().length > 0 &&
					videoImages.getBytes().length > 0){
				String video = qiniuService.upload("file", videos.getOriginalFilename(),videos.getBytes());
				String videoImage = qiniuService.upload("file", videoImages.getOriginalFilename(),videoImages.getBytes());
				abc.setVideo(video);
				abc.setVideoImage(videoImage);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		if(abcId != null && !"".equals(abcId)){
			abc.setLevel(2);
			abc.setParentId(abcId);
		}else{
			abc.setLevel(1);
		}
		result = arBuildingContentService.insert(abc);
		return result;
	}

	
	/**
	 * 修改页面
	 * 作者： 张叶
	 * 创建时间：2018年11月28日  下午2:26:51
	 */
	@RequestMapping("/updateArBuildingContent/{id}")
	public String updateArBuildingContent(@PathVariable("id") Long id,Model model){
		ArBuildingContent b = arBuildingContentService.selectByPrimaryKey(id);
		model.addAttribute("arBuildingContent",b);
		String where = " and status != 'deleted' and level = 1 and ar_building_id = " + b.getArBuildingId();
		String abListWhere = " and status != 'deleted'";
		if(b.getParentId() == null || "".equals(b.getArBuildingId())){//一级
			//判断此记录是否有二级
			List<ArBuildingContent> lists = arBuildingContentService.selectByWhere(" and status != 'deleted' and parent_id = " + id);
			if(lists.size() > 0){//有二级分类。
				where = " and 1 = 2";
				abListWhere += " and id = " + b.getArBuildingId();//如果有二级，则不允许修改大楼
			}else{
				where += " and id != " + id;
			}
		}
		List<ArBuildingContent> abcList = arBuildingContentService.selectByWhere(where);
		model.addAttribute("abcList",abcList);
		List<ArBuilding> list = arBuildingService.selectByWhere(abListWhere);
		model.addAttribute("arBuildingList",list);
		List<ContentLogo> imageUrlList = contentLogoService.selectAll();
		model.addAttribute("imageUrlList",imageUrlList);
		return "admin/arBuildingContent/update";
	}
	
	
	/**
	 * 修改功能
	 * 作者： 张叶
	 * 创建时间：2018年11月22日  下午2:31:41
	 */
	@ResponseBody
	@RequestMapping("/update")
	public Result update(@RequestParam(value = "videos", required = false) MultipartFile videos,
			@RequestParam(value = "videoImages", required = false) MultipartFile videoImages,
			ArBuildingContent abc,Long abcId){
		try {
			if(videos.getBytes().length > 0){
				String video = qiniuService.upload("file", videos.getOriginalFilename(),videos.getBytes());
				abc.setVideo(video);
			}
			if(videoImages.getBytes().length > 0){
				String videoImage = qiniuService.upload("file", videoImages.getOriginalFilename(),videoImages.getBytes());
				abc.setVideoImage(videoImage);;
			}
		} catch (Exception e) {
		}

		if(abcId != null && !"".equals(abcId)){
			abc.setLevel(2);
			abc.setParentId(abcId);
		}else{
			abc.setLevel(1);
			abc.setParentId(null);
		}
		Result result = new Result();
		result = arBuildingContentService.updateBySelective(abc);
		return result;
	}
	
	
	/**
	 * 删除
	 * 作者： 张叶
	 * 创建时间：2018年11月30日  上午10:48:30
	 */
	@ResponseBody
	@RequestMapping(value = "/delArBuildingContent/{id}", method = RequestMethod.POST)
	public Result delArNavigation(@PathVariable Long id){
		Result result = new Result();
		ArBuildingContent abc = arBuildingContentService.selectByPrimaryKey(id);
		if(abc != null && !"".equals(abc)){
			result = arBuildingContentService.deleted(abc);
		}else{
			result.code = 2;
			result.message = "当前记录或已删除，请刷新后重试";
		}
		return result;
	}
}
